package com.yanqu.road.entity.manor;

import com.yanqu.road.entity.DataObject;

import java.util.Map;
import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;

/**
 * @author ：zfr
 * @date ：2021/5/10 17:54
 */
public class ManorHarvestData extends DataObject {
    private long userId;            //玩家id
    private int harvestType;        //收成类型
    private int outPutId;           //生产id
    private int lv;                 //等级
    private int specialSkillLv;     //附加技能等级
    private int skinId;             //皮肤id
    private long collectTime;       //收获时间
    private long realCollectTime;   //实际收取时间
    private long yieldStash;        //暂存收益
    private String nickName;        //昵称
    private int changeNameTimes;    //修改昵称次数
    private long baseSpeed;         //基础产速
    private long specialSkillAddRatio;  //附属技能加成
    private long otherAddRatio;       //其他加成
    private long helpAddRatio;        //协助加成
    private String extendParam;     //拓展参数
    private Map<Integer, ManorRankActivityData> rankActivityDataMap = new ConcurrentHashMap<>();    //庄园产量冲榜数据

    public long getUserId() {
        return userId;
    }

    public void setUserId(long userId) {
        this.userId = userId;
    }

    public int getHarvestType() {
        return harvestType;
    }

    public void setHarvestType(int harvestType) {
        this.harvestType = harvestType;
    }

    public int getOutPutId() {
        return outPutId;
    }

    public void setOutPutId(int outPutId) {
        this.outPutId = outPutId;
    }

    public int getLv() {
        return lv;
    }

    public void setLv(int lv) {
        if (this.lv != lv) {
            this.lv = lv;
            setUpdateOption();
        }
    }

    public int getSpecialSkillLv() {
        return specialSkillLv;
    }

    public void setSpecialSkillLv(int specialSkillLv) {
        if (this.specialSkillLv != specialSkillLv) {
            this.specialSkillLv = specialSkillLv;
            setUpdateOption();
        }
    }

    public int getSkinId() {
        return skinId;
    }

    public void setSkinId(int skinId) {
        if (this.skinId != skinId) {
            this.skinId = skinId;
            setUpdateOption();
        }
    }

    public long getCollectTime() {
        return collectTime;
    }

    public void setCollectTime(long collectTime) {
        if (this.collectTime != collectTime) {
            this.collectTime = collectTime;
            setUpdateOption();
        }
    }

    public long getYieldStash() {
        return yieldStash;
    }

    public void setYieldStash(long yieldStash) {
        if (this.yieldStash != yieldStash) {
            this.yieldStash = yieldStash;
            setUpdateOption();
        }
    }

    public String getExtendParam() {
        return extendParam;
    }

    public void setExtendParam(String extendParam) {
        if (!Objects.equals(extendParam, this.extendParam)) {
            this.extendParam = extendParam;
            setUpdateOption();
        }
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        if (!Objects.equals(nickName, this.nickName)) {
            this.nickName = nickName;
            setUpdateOption();
        }
    }

    public int getChangeNameTimes() {
        return changeNameTimes;
    }

    public void setChangeNameTimes(int changeNameTimes) {
        if (this.changeNameTimes != changeNameTimes) {
            this.changeNameTimes = changeNameTimes;
            setUpdateOption();
        }
    }

    public long getRealCollectTime() {
        return realCollectTime;
    }

    public void setRealCollectTime(long realCollectTime) {
        if (this.realCollectTime != realCollectTime) {
            this.realCollectTime = realCollectTime;
            setUpdateOption();
        }
    }

    public long getBaseSpeed() {
        return baseSpeed;
    }

    public void setBaseSpeed(long baseSpeed) {
        if (this.baseSpeed != baseSpeed) {
            this.baseSpeed = baseSpeed;
            setUpdateOption();
        }
    }

    public long getOtherAddRatio() {
        return otherAddRatio;
    }

    public void setOtherAddRatio(long otherAddRatio) {
        if (this.otherAddRatio != otherAddRatio) {
            this.otherAddRatio = otherAddRatio;
            setUpdateOption();
        }
    }

    public long getHelpAddRatio() {
        return helpAddRatio;
    }

    public void setHelpAddRatio(long helpAddRatio) {
        if (this.helpAddRatio != helpAddRatio) {
            this.helpAddRatio = helpAddRatio;
            setUpdateOption();
        }
    }

    public long getSpecialSkillAddRatio() {
        return specialSkillAddRatio;
    }

    public void setSpecialSkillAddRatio(long specialSkillAddRatio) {
        if (this.specialSkillAddRatio != specialSkillAddRatio) {
            this.specialSkillAddRatio = specialSkillAddRatio;
            setUpdateOption();
        }
    }

    public Map<Integer, ManorRankActivityData> getRankActivityDataMap() {
        return rankActivityDataMap;
    }

    public void setRankActivityDataMap(Map<Integer, ManorRankActivityData> rankActivityDataMap) {
        this.rankActivityDataMap = rankActivityDataMap;
        setUpdateOption();
    }
}
